// 导入接口
import { loginAPI } from '@/api/user'
// 导入操作本地存储的函数
import { setToken, getToken } from '@/utils/storage'
export default {
  // 开启命名空间
  namespaced: true,

  state () {
    return {
      // 默认值就是从本地取的
      token: getToken()
    }
  },

  mutations: {
    // 修改token的方法
    setToken (state, token) {
      // 把token存到state
      state.token = token
      // 存到本地 -- 虽然名字一样，但是使用词法规范不一样
      // 要调用mutations里的setToken必须用vuex对象.commit('setToken')才能调用
      // 直接写setToken都是调用导入的函数
      setToken(token)
    }
  },

  actions: {
    // 因为token也是发请求得来的，所以要写actions
    async login (ctx, obj) {
      // 发请求
      const res = await loginAPI(obj)
      // 把获取到的token传递给mutations去赋值
      ctx.commit('setToken', res.data.token)
    }
  }
}
